package main

import (
	"fmt"
	"log"
	"os"
	"os/signal"
	"syscall"

	"window-position-manager/config"
	"window-position-manager/monitor"
)

func main() {
	fmt.Println("=== 弹出窗口位置管理工具 ===")
	fmt.Println("正在启动...")

	// 加载配置文件
	cfg, err := config.LoadConfig("window_cfg.ini")
	if err != nil {
		log.Printf("加载配置文件失败: %v", err)
		log.Println("将使用默认配置创建配置文件")
		cfg = config.NewDefaultConfig()
		if err := cfg.Save("window_cfg.ini"); err != nil {
			log.Fatalf("创建默认配置文件失败: %v", err)
		}
	}

	// 创建窗口监控器
	monitor := monitor.NewWindowMonitor(cfg)

	// 启动监控
	if err := monitor.Start(); err != nil {
		log.Fatalf("启动窗口监控失败: %v", err)
	}

	fmt.Println("窗口监控已启动，按 Ctrl+C 退出...")

	// 等待中断信号
	sigChan := make(chan os.Signal, 1)
	signal.Notify(sigChan, syscall.SIGINT, syscall.SIGTERM)
	<-sigChan

	fmt.Println("\n正在停止监控...")
	monitor.Stop()
	fmt.Println("程序已退出")
}
